#include <iostream>
#include <vector>
#include <stack>
using namespace std;

int main()
{
        ios::sync_with_stdio(false);
        cin.tie(nullptr);

	int n = 0;
	cin >> n;
	vector<long> num(n + 1, 0);
	for (int i = 1; i <= n; i++) {
		cin >> num[i];
	}

	vector<int> left(n + 1, 0), right(n + 1, 0);
	stack<int> st;

	int idx = 0;
	for (int i = 1; i <= n; i++) {
		idx = 0;
		while (!st.empty() && num[st.top()] > num[i]) {
			idx = st.top();
			st.pop();
		}
		if (!st.empty()) {
			right[st.top()] = i;
		}
		if (idx) {
			left[i] = idx;
		}
                st.push(i);
	}

	long long lxor = 0, rxor = 0;
	for (int i = 1; i <= n; i++) {
		lxor ^= 1LL * i * (left[i] + 1);
		rxor ^= 1LL * i * (right[i] + 1);
	}
        cout << lxor << ' ' << rxor << '\n';
        return 0;
}